#include<stdio.h>
#include <stdlib.h>
#include <string.h>
#include "administration.h"
#include "suivi.h"
#include "alerte.h"
int chercher_capteur(char capt[],char ch[])
{ 
int verif=0;
char *s;
  s=strstr(ch,capt);
    if (s!=NULL)
    	verif=1;  
    return(verif);
}
int chercher_personnel(long int idn,personnel* p)
{
	FILE* f;
	int test=0;
		f=fopen("personnel.txt","r");

	if(f == NULL){
		printf("\nProbleme ouverture de fichier en mode lecture\n");
		test=-2;
	}

	while(test==0 && fscanf(f,"%s %s %ld %d %s %ld",p->nom,p->prenom,&p->cin,&p->age,p->fonction,&p->identifiant)!=EOF)
	  {
		if(p->identifiant==idn)    
		    test=1;
	  }              
		  
	if (test==1){
			printf ("\nl'identifiant est trouvé\n"); 
		    }
	else{
			printf("\nl'identifiant n'existe pas\n");
	    }
	fclose(f);
	return (test);
	
}
void alerte(chemin T[],long int idn,int pos,char parcours[])
{ 
	  char ch1[20],ch2[20],ch3[10],ch4[10];
	  int i=0,j=0,n1,n2,e,p,exist;
	  patient* pat;
	  personnel per;


	  pat=(patient*)malloc(sizeof(patient));

	  strcpy(ch3,"");
	  strcpy(ch4,"");
	  exist=chercher_personnel(idn,&per);
	  if(exist == -2)
		printf("\nprobleme ouverture de fichier\n ");
	  if (exist==1)
	{
		  e=chercher_capteur("Ebola",T[pos].capteur);
		  p=chercher_capteur("Pout",T[pos].capteur);
		if(e==1)
	{ 
		  printf("\nle personnel %s %s est infecté(e)\n",per.nom,per.prenom);
		  supprimerau_personnel(per.identifiant);
		  strcpy(pat->nom,per.nom);
		  strcpy(pat->prenom,per.prenom);
		  pat->cin=per.cin;
		  pat->age=per.age;
		  printf("\ndonner la date d'arrivée du nouveau patient\n");
		  scanf("%d/%d/%d",&pat->d_arrivee.jour,&pat->d_arrivee.mois,&pat->d_arrivee.annee);
		printf("fait\n");
		 // scanf("%d",&pat->d_arrivee.mois);
		 // scanf("%d",&pat->d_arrivee.annee);
		  ajouterau_patient(pat);
		
	}
		if(p==1)
	{
		  printf("\nle personnel %s %s est sorti à travers la barrière de la clinique\n",per.nom,per.prenom);
	}
		strcpy(ch1,parcours);
		strcpy(ch2,T[pos].capteur);
		n1=strlen(ch1);
		n2=strlen(ch2);
		i=0;
		j=0;
		while (i<n1)
		{
			while(ch1[i]!='\t')
			{	
				sprintf(ch3,"%c",ch1[i]);				
				i++;
			}
			while(ch2[j]!='\t')
			{
				sprintf(ch4,"%c",ch2[j]);
				j++;
			}
			if(strcmp(ch3,ch4)!=0)
				alerter_responsable(per.nom,per.prenom,ch3);
			strcpy(ch3,"");
			strcpy(ch4,"");
			i=i+2;j=j+2;
		}
	}
	free(pat);
}
void alerter_responsable(char nom[],char prenom[],char ch[])
{
if (strcmp("E01",ch)==0) 
	printf("le personnel %s %s n'est pas entré dans la zone",nom,prenom);
if (strcmp("C01",ch)==0)
	printf("le personnel %s %s n'a pas mis sa combinaison",nom,prenom);
if (strcmp("S01",ch)==0)
	printf("le personnel %s %s n'est pas sorti de la zone d'isolation",nom,prenom);  
if (strcmp("L01",ch)==0)
	printf("le personnel %s %s ne s'est pas lavé les mains ",nom,prenom); 
if (strcmp("L02",ch)==0)
	printf("le personnel %s %s ne s'est pas lavé les mains pendant 5 minutes",nom,prenom);   
if (strcmp("C02",ch)==0)
	printf("le personnel %s %s n'a pas enlevé sa combinaison",nom,prenom);   
if (strcmp("V01",ch)==0)
	printf("le personnel %s %s n'est pas passé par la cuve",nom,prenom);   
if (strcmp("I01",ch)==0)
	printf("le personnel %s %s n'a pas incinéré totalement sa combinaison",nom,prenom);   
if (strcmp("D01",ch)==0)
	printf("le personnel %s %s n'a pas pris une douche moyennant une solution d'eau et du chlore",nom,prenom);   
if (strcmp("B01",ch)==0)
	printf("le personnel %s %s n'est pas entré dans la zone des bureaux",nom,prenom);   
if (strcmp("M01",ch)==0)
	printf("le personnel %s %s n'est pas entré dans la zone des magazins",nom,prenom);  
if (strcmp("Sout",ch)==0)
	printf("le personnel %s %s n'est pas sorti de la clinique",nom,prenom);    
}
void supprimerau_personnel(long int ID)
{int test,agee ;
long int carte,idn;
personnel *p ;
char nom[10],prenom[10],fonction[10];
 FILE *f_perma; 
 FILE *f_tempo;

     f_perma=fopen("personnel.txt","r");
     f_tempo=fopen("personnelt.txt","a");
     
  
test=0;
while ((fscanf(f_perma,"%s %s %ld %d %s %ld",nom,prenom,&carte,&agee,fonction,&idn)!=EOF))
        {if ( idn==ID) 
         {
                test=1;
         }
	else  fprintf(f_tempo,"%s %s %ld %d %s %ld\n",nom,prenom,carte,agee,fonction,idn); 
        }

 
    if (test==0)
        printf("\nl'identifiant que vous tentez de supprimer n'existe pas\n"); 
    else printf("\nle personnel a été supprimé avec succès\n");
  fclose(f_perma);
  fclose(f_tempo);
  remove("personnel.txt");
  rename("personnelt.txt","personnel.txt");	
 
  
}
void ajouterau_patient(patient* pt)
{
FILE *f;
f=fopen("patient.txt","a");
if(f != NULL)
	fprintf(f,"%s %s %ld %d %d %d %d\n",pt->nom, pt->prenom, pt->cin,pt->age,pt->d_arrivee.jour,pt->d_arrivee.mois, pt->d_arrivee.annee);
else
	printf("\nerreur dans l'ouverture du fichier patient\n");
fclose(f);
}
